package 算法练习;/**
 * @author： li
 * @date： 2022-01-05 21:37
 * @version 1.0
 */

/**
 问题描述
 　　逗志芃在干了很多事情后终于闲下来了，然后就陷入了深深的无聊中。
 不过他想到了一个游戏来使他更无聊。他拿出n个木棍，然后选出其中一些粘成一根长的，
 然后再选一些粘成另一个长的，他想知道在两根一样长的情况下长度最长是多少。
 输入格式
 　　第一行一个数n，表示n个棍子。第二行n个数，每个数表示一根棍子的长度。
 输出格式
 　　一个数，最大的长度。
 样例输入
 4
 1 2 3 1
 样例输出
 3
 数据规模和约定
 　　n<=15
 */
import java.util.Scanner;
public class 无聊的逗_二进制 {
        public static void main(String[] args) {
            Scanner cin=new Scanner(System.in);
            int ans=Integer.MIN_VALUE;
            int n = cin.nextInt();
            int []array=new int[1<<n];
            System.out.println(n<<1);
            System.out.println(1<<n);
            int []nums=new int[n];
            for(int i=0;i<n;++i){
                nums[i]=cin.nextInt();
                array[1<<i]=nums[i];
            }
            for(int i=0;i<1<<n;++i){
                for(int j=0;j<n;++j){
                    if((i&(1<<j))==0)continue;
                    array[i]=array[i-(1<<j)]+nums[j];
                    break;
                }
            }
            for(int i=1;i<(1<<n);++i){
                int j=(1<<n)-i-1;
                for(int k=j;k>0;k=(k-1)&j){
                    if(array[k]==array[i])
                        ans=Math.max(array[k],ans);
                }
            }
            System.out.print(ans);
        }
    }
